[Talend]tFileDeleteを利用してファイルを削除する
はじめに
こんにちは。DI部の大高です。
今回はTalendのコンポーネント「tFileDelete」を紹介したいと思います。
前提条件
Talendのバージョンは「Talend Open Studio for Big Data」の「Version 7.0.1」で検証しています。
tFileDeleteについて
「tFileDelete」を利用するとファイルやディレクトリを削除することができます。
「tFileDelete」コンポーネントのTalend Helpページはこちらです。
では、具体的に以下で解説していきます。
ジョブの説明
「tFileDelete」でファイルを削除し、「tJava」で処理結果を標準出力に表示します。
削除対象ファイルの配置
サンプルとして削除するテキストファイルを以下のとおり配置しました。
>dir C:\tmp\Sandbox\Components\tFileDelete ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は EC53-D1E9 です C:\tmp\Sandbox\Components\tFileDelete のディレクトリ 2018/11/01 10:12 <DIR> . 2018/11/01 10:12 <DIR> .. 2018/11/01 09:51 8 Sample.txt 1 個のファイル 8 バイト
「tFileDelete」コンポーネントの設定
コンポーネントの設定
コンポーネントには削除対象に関する設定をしていきます。
ファイル名
デフォルトでは、削除対象とする「ファイル名」を指定するようになっています。今回は「/tmp/Sandbox/Components/tFileDelete/Sample.txt」を指定してみました。
エラーで失敗
このオプションを有効にすると、エラー発生時にジョブ全体がエラーで終了します。無効の場合には、ファイル削除に失敗しても後続の処理は継続されます。
今回は無効にしてみました。
フォルダーの削除
このオプションを有効にすると、削除対象をフォルダにすることができ、削除対象の指定箇所も記述が上記の「ファイル名」から「フォルダー」に変わります。
今回は無効にしてみました。
ファイルまたはフォルダの削除
このオプションを有効にすると、削除対象をファイルとフォルダの両方とすることができます。削除対象の指定箇所も記述が上記の「ファイル名」から「削除するファイルまたはディレクトリ」に変わります。
今回は無効にしてみました。
「tJava」コンポーネントの設定
「tJava」コンポーネントでは「tFileDelete」の処理結果を表示するために「tFileDelete.CURRENT_STATUS」を標準出力に表示します。
コードは以下のとおりとなります。
System.out.println(((String)globalMap.get("tFileDelete_1_CURRENT_STATUS")));
なお、"tFi"などのコード入力途中で「Ctrl+Space」を入力すると候補が表示され、「tFileDelete.CURRENT_STATUS」を選択すると、自動で「((String)globalMap.get("tFileDelete_1_CURRENT_STATUS"))」が補完入力されます。
実行結果
設定は以上です。実際にこのジョブを実行すると以下のように出力されます。
[statistics] connecting to socket on port 3748 [statistics] connected File deleted. [statistics] disconnected
また、実際にファイルも削除されたかも確認します。
>dir C:\tmp\Sandbox\Components\tFileDelete ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は EC53-D1E9 です C:\tmp\Sandbox\Components\tFileDelete のディレクトリ 2018/11/01 10:22 <DIR> . 2018/11/01 10:22 <DIR> .. 0 個のファイル 0 バイト
無事にファイルが削除されたことが確認できました!
まとめ
以上、「tFileDelete」コンポーネントの紹介でした。
実際のジョブでは、データのロード処理や一時利用したファイル・ディレクトリの削除に、よく利用するコンポーネントになると思います。
それでは。